package net;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

/**
 * @Author wangzhipeng
 * @Date 2020-08-24 10:03 下午
 * @Description
 * TCP通信的客户端：向服务器发送连接请求，给服务器发送数据，读取服务器会写的数据
 * 表示客户端的类：
 *      java.net.Socket 此类实现了客户端套接字（也可以直接叫套接字）套接字是两台机器通信的端点
 *  构造方法
 *      Socket（String，int port）
， */
public class TCPClient {
    public static void main(String[] args) throws IOException {
        //1、创建一个客户端对象Socket  构造方法绑定服务器的IP地址和端口号
        Socket socket = new Socket("127.0.0.1",8989);
        //2 使用Socket对象中的方法getOutputStream() 获取字节输出流OutputStream对象
        OutputStream os = socket.getOutputStream();
        //3 使用网络字节输出流OutputStream对象中的方法write，给服务器发送数据
        os.write("你好服务器".getBytes());

        //4.使用Socket对象中的方法getInputStream()获取网络字节流输入流InputStream对象
        InputStream is = socket.getInputStream();
        //5.使用网络字节输入流inputStream对象中的方法read读取服务器回写的数据
        byte[] bytes = new byte[1024];
        int len = is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //6释放资源
        socket.close();


    }
}
